perm filename PDP11[DOC,TOB] blob
sn#136622 filedate 1974-12-13 generic text, type T, neo UTF8
00100 PDP11 SYSTEM SOFTWARE
00200
00300
00400 OUTLIN[11,BO]
00500 Outline of PDP-11 resident monitor facilities
00600
00700
00800 GENERAL
00900
01000 1. Monitor calls are compatible with DEC software as far as possible.
01100 The form of a call is: push arguments on the R6 stack, execute an EMT
01200 or TRAP instruction, pop results off the stack. Success or failure,
01300 when appropriate, is returned in the C bit of the program status.
01400 A file on [11,SYS] will contain definitions of macros, fixed addresses,
01500 and special symbols.
01600
01700 2. Until the advent of memory mapping, the system and user code will
01800 have to reside in the same core image. The common definitions file
01900 will contain an origin for user code. The system code will be loadable
02000 by 11TTY using the OVERLAY command. After mapping arrives, the system
02100 code will look more like a resident monitor and there will be ways to
02200 request the monitor to establish a user area. The loader will then
02300 put the user code where the monitor directs. The ELF code on the 10
02400 will probably be augmented to include some special MTAPE operations
02500 for this type of communication. This code will be designed with the
02600 future implementation of some sort of timesharing in mind.
02700
02800 3. There will be I/O drivers for the console and the 10/11 interface,
02900 using DEC-style monitor calls. Since the interface is under the 10's
03000 control, programs on the 10 will have to do the data transfer. ELFSER
03100 will later be changed to provide full buffered-mode communication
03200 between the two machines.
03300
03400
03500 HAND/EYE SPECIFIC THINGS
03600
03700 4. Monitor calls to create, schedule, suspend, and kill parallel
03800 processes. These will run out of the same core image, at least at first,
03900 so this facility is not quite the same as general timesharing. Not yet
04000 decided exactly how much of the state of these processes is kept by the
04100 Kernel and how much by the user.
04200
04300 5. Scheduling: at each clock tick (a tick is just about any time interval
04400 we want), the scheduler activates any process that was waiting for this
04500 time to arrive. Activation happens by putting the process onto a run
04600 queue. There are 7 such queues, corresponding to processor priority
04700 levels 0-6, and the highest numbered one is emptied first. When a
04800 process is activated it pre-empts any running process that has a lower
04900 priority.
05000
05100 6. Signalling between processes has not been pinned down yet. I can
05200 implement some primitives that are guaranteed to be atomic operations
05300 if it turns out to be desirable.
05400
05500 7. Processor priority level 7 is reserved for the AD service and "atomic"
05600 monitor calls. The AD routine will be in the Kernel, executing a command
05700 list to read a set of values. When the command list is exhausted the
05800 AD routine will call the user's servo, giving it the values read. The
05900 servo will also run at level 7. This business can be thought of as a
06000 special case of the scheduling operation, in which no more than one
06100 process at a time can be on the priority-7 run queue.
06200
00100 There is no necessity for tty input for the pdp11. The PDP10 tty
00200 service and line editor are adequate. At the moment, there is a small
00300 hitch: the pdp11 interface allows only transfer only from the pdp10
00400 to pdp11. That is an inconvenience, but no major obstacle. It means
00500 that the pdp11 must establish a buffer area; the pdp10 must look at
00600 that buffer from time to time to see whether any messages are waiting.
00700 For messages from the pdp11 to user, the interval between glances can
00800 be about the human reflex time, ie a few tenths of a second. But for
00900 some pdp10 programs, the polling interval can be much shorter, depending
01000 on the meaning of the pdp11 output.
01100 A useful piece of hardware is the PDP11 CONSOLE BOX. This device will
01200 enable the pdp11 to send messages to the pdp10. It has a relatively
01300 high priority for the hand/eye system, but as indicated, we can get
01400 along without it.
01500
01600 HOW CAN WE GET A HIGHER LEVEL LANGUAGE FOR THE PDP11?
01700 HOW CAN WE GET BACK TO DOING RESEARCH WITH MANIPULATION?
01800 HOW CAN WE MINIMIZE THE HARDWARE/SOFTWARE EFFORT ON THE PDP11?
01900
02000
02100 Rubin is working on a new version of RUG, called DDT (surprise).
02200 He is still debugging.
02300 Who has PDP11 involved in similar things?
02400 MIT
02500 SRI
02600 GM
02700 CMU
02800 everyone else has a disk and a resident monitor.
02900
03000
03100 JAM
03105 We need either a multi-tasking system or a set of upward-compatible
03110 subroutines (compatible w/ a system to come)
03200 What are the possible monitors which we could use for the PDP11?
03300 UNIX (Bell Labs)
03400 ELF (USC ARPA speech project) -- still evolving
03500 Pitts system--still evolving
03600 DOS, RSX-11 (DEC system)
03700
03705 home brew
03800 UNIX
03900 Might consider Licklider's buying UNIX for the ARPA community pdp11's.
04000 It costs $20k, but might be less for us. It is 50k bytes min (8k resident).
04100 It allows interprocess communication with i/o streams. It has interrupts
04200 among parent and child. There is no real time service.
04300
04400 ELF Dave Reitz, USC speech project
04500 Ask Tovar
04600
04700 Pitts' system
04800 DOS compatible. Like the DEC system in having only 1 process.
04900
04905
04910 HOME BREW
04915 Our needs are quite limited, since we are more interested in interprocess
04920 control for a single user, with cooperative processes. Our needs are very
04925 specialized, with strong real-time constraints. Thus, we need only a small
04930 subset of a general time-sharing system, with process facilities that not
04935 all of them have, and real-time capabilities that none have. This will be
04940 a small and specialized system. We should consider that one year of a
04945 talented system programmer is necessary for this effort.
04950
05000 PDP11 interface to 3330
05100 $17.5k Systems Concepts, $12.5k Petit
05200 new port on 3330 $200/month
05300
05400 BCPL/11 would be useful to have new code generators
05500
05600
05700 To plan choice of these, ask Bo to study and rank order in
05800 difficulty. JAM's sense is that in increasing order of difficulty:
05900 bare machine, Pitts', ELF, UNIX, home made system
00100 Paul says that the PDP-6 system would have had to be redone, anyway.
00200 The hardware did not work and was not documented. While even the
00300 arm hardware has been impossibly slow, the hardware system will at least be
00400 an improvement over the other.
00500
00600 Can we use one arm on the PDP-6 and one on PDP-11? YES
00700 Les
00800 Gafford 50%
00900 McGuire 10%
01000 Panofsky 33%
01100 Wagner 25%
01200 Quam 20%
01300 Charlie 67%
01400 Joe
01500 Bridge
01600
01700
01800 Gafford
01900 arm interface (two weeks from Oct 21) for one arm, parts are here,1 wk debug
02000 when up and debugged, couple months to duplicate for other arm
02100 cables being made, time-sharing technicians, technician limited
02200 includes camera servo
02300 2nd Arm Control 12 bit A/D, 8 bit D/A
02400 2 DEC racks, 8 sample,7preamp cards at 2/day;
02500 3 1/2 wire wrap at 3-4 days each; 5 analog cards at 1 day each;
02600 1 wk backplane wiring; 1 wk heatsink; 1 wk debugging
02700 without making simplifications
02800 We can do 85% of it without decisions about sample and holds.
02900 It might slow construction down to simplify. This will
03000 function as a general hand/eye device control 64 chan in, 16 out
03100 Vic's simple controller uses mos switch input, monolithic, parallel
03200 D/A's output.
03300 console box design done (Gafford), 2-3 days layout (Gafford)
03400 1 wk wrap, 1 wk debug, construction start in 3 wks (means end Dec)
03500
03600 QUAM
03700 Biggest need is someone with total commitment to each project.
03800 Not much effort has been put on PDP11; 1/2 man year.
03900 Ted has had responsibility but not much interest, other things have had
04000 higher priority: vending machine interface, voder, autodialer.
04100 We have had only fractions of several people who don't communicate well or
04200 often.
04300 The drawing program is a negative influence in design. Unwieldy, causes
04400 too much trouble in changing design.
04500 PRIORITIES
04600 ZONKER 99% design
04700 UNIBUS PORT 80% design, no drawings
04800 11 MAP
04900 FAST BUS PORT ?
05000 DIGITIZER PORT ?
05100 UNIBUS AND DIAGNOSTIC PORT
05200 design virtually done 1 day (Quam)
05300 1 wk drawings (Wagner) 1 wk layout (Wagner)
05400 2 quad hi cards, 4 days each
05500 debug 3 days (Quam) independent of Zonker
05600 parts orders-power supplies, cables, connectors, wire wrap sockets,
05700 capacitors for power supplies, delay lines, dips for TTL (unibus,port,map)
05800 error correction
05900 Chuck Thacker thinks a big mistake to do without (he designed MAXC and ALTO)
06000 complexities due to TV input
06100 does not make sense to relax bandwidth
06200 design and layout would have to be scrapped
06300 Console box not on critical path
06400 plan: bring up one 64k box (map registers on port)
06500 can use all 64k with 16k page size
06600 need
06700 memory interface (with error correction)
06800 mapping box logic design done, no layout yet
06900 fast port partially designed
07000 unibus and diagn port design complete (Wagner)
07100 Memory Interface critical path, 1 box
07200 3 wire wrap cards, priority 2 days, parity 3 days, mem control 5 days
07300 backpanel wiring 6 days
07400 conclusion 16 days on critical path + 18 days for other two boxes
07500 pc card stuffing and soldering 15 days, might be low
07600 3rd pc card type designed, no layout
07700 debug system (Quam) 1 month, depends on unibus diagnostic port
07800
07900 TED
08000 1. Arm Control - 2 wks subject to parts delivery
08100 2. 2nd Arm Control - ?
08200 3. Console Box: Design done (Gafford) Layout not done (Gafford or Wagner)
08300 1 4 hi card 1 day layout; 2-3 day constr (staff);2-3 days (Ted) debug
08400 4. Map: design 3-4 days left (Ted); 2 hex hi cards; 2-3 days layout;
08500 8-10 days (staff) construction; 7 days debug (Ted)
08600 When are parts delivered? When is Ted free to do it?
08700 5. Memory Interface (includes error correction)
08800 8 wire wrap boards, 20 pc two types, 8 pc cards third simple type
08900 all wire wrap cards designed (Quam), all but 1 laid out (Wagner)
09000 8 cards at 2-3 days per card + 2 days back panel wiring
09100 pc cards of two types designed and laid out
09200 on tape, 1 wk plotting TRW; manuf 2-3 wks
09300 most components here, constr 10-15 days
09400 3rd simple card type not even thought out
09500 debug as a system Quam 15 days
09600 Ted has some apprehension about the size of the memory interface
09700 and working in ECL. The complication follows from two decisions:
09800 to make the tv input/output very fast, and to include error
09900 correction.
10000 5. Interface boxes PDP-11 w/ error logging, SPS-41
10100 1 big hex hi card, design mostly completed (Quam), no layout
10200 SPS-41 interface, not absolutely necessary, no work has been done
10300 6. Fast Ports
10400 TV (Gafford) not designed yet; 1-2 months design (Gafford)
10500 SPS-41 not designed yet
10600
10700
10800 Other hangups
10900 Have not decided on power supplies yet (funny 2v)
11000
11100 Other laboratory hardware projects competing
11200 ampex memory
11300 new tty scanner (adaptive) ?
11400 KL-10 (July or later) buses, swapper
11500 XGP replacement
11600
11700
11800 SUMMARY OF PROJECT TIME REQUIREMENTS
11900 Arm Control 2 man wks technician
12000 2nd Arm Control 5 man wks technician, 2 man wks Gafford
12100 Console Box 1 man day (Gafford), 3 man day technician, 3 day Ted
12200 Map 4 day Ted, 3 day Gafford, 10 day technician, 7 day Ted
12300 Memory Interface 45 day technician, 18 day Quam, 8 day Ted
12400 PDP-11 Interface box 2 day Quam, 3 day Wagner, 5 days techn, 4 day Ted
12500
12600 totals 98 day technician, 14 day Gafford, 22 days Ted, 3 days Wagner
12700 multiply by a factor of 3 to allow for unexpected difficulties, maintaining
12800 existing hardware, and competing projects.
12900 Adjusted totals 300 technician, 42 Gafford, 66 Ted, 10 Wagner
13000 this does not even include TV interface, etc.
13100
13200
00100 CRITICAL PATH
00200 week beginning Dec 2
00300 1 TRW plots
00400 2 check
00500 3 "
00600 4
00605 5 make pc cards wire wrap 1 memory MAP design arm box
00628 6 " 16 days MAP layout "
00651 7 " " debug (Gafford)
00674 8 stuff and solder " test arm box
00700 9 Christmas&New Year unibus diagnostic port test arm box
00800 10 stuff and solder " replicate arm
00900 11 cabling "
01000 12 debug (QUAM) "
01100 13
01200 14 " "
01300 15 "
01400 16 MAP wire wrap "
01500 17 " " "
01600 18 " MAP debug (TED) "
01700 19 " "
01750
01800 week beginning Oct 28
01900 1 TRW plots wire wrap 1 memory MAP design arm box
02000 2 check 16 days MAP layout "
02100 3 " " debug (Gafford)
02200 4 make PC cards " test arm box
02300 5 " unibus diagnostic port test arm box
02400 6 " " replicate arm
02500 7 stuff and solder "
02600 8 " "
02700 9. Christmas and New Years holidays
02800 10 " "
02900 11 cabling "
03000 12 debug (Quam) MAP wire wrap "
03100 13 " " "
03200 14 " MAP debug (TED) "
03300 15 " "
03400
03500 how could this schedule slip?
03600 note that it assumes two technicians are available at all times.
03700 What is the fraction of time technicians are available?
03800 parts deliveries
03900 wire wrap sockets for zonker (we have most dips for pc cards)
04000 cables and power supplies
04100 pc card errors, cards not producible
04200
04300
04400 Conclusion:
04500 An absolute minimum time for the system to be usable with this plan is 4 months.
04600 A planning estimate would be twice the fairly realistic time estimate
04700 given above, or about 8 months using the bulk of the hardware staff.
04800 After the initial configuration works, there would be still the
04900 following projects:
05000 memory interface for other two boxes
05100 console box
05200 sps-41 port
05300 tv port
05400 It would seem reasonable to reorder the plan.
05500 unibus port
05600 error correction (can it be independent of whole interface?)
05700 map
05800 We note that tv input need not be very fast. Processor speed is
05900 much slower than input, so we lose very little by slowing down tv
06000 input a factor of 3 or so. That can be done by having a one-line
06100 buffer memory which reads in at tv speeds and reads out over two or
06200 three lines at unibus speeds. Solid state devices are ideally matched
06300 to unibus speeds.
06400 That may seem like a lot of hardware effort, but it is an order of
06500 magnitude simpler than the tv interface planned.
00100 Possible simplifications
00200 1. Simplified interface
00300 parity - no error correction, have Intel debug
00400 slow tv input
00500 18 bits wide
00600 simple crossbar with some interference (PDP-11 usually waits for SPS-41)
00700 TTL, standard power supplies
00800
00900 means scrapping the other design-design time is a guess.
01000 not simple to redesign and Quam won't do it.
01100 also requires a slow input TV device
01200 that could be a line scan memory which puts every third or fourth line
01300 at the right place in memory
01400
01500 2. Unibus Interface plus parity (could put in correction if necessary)
01600
01700
01800
01900 would not bother Ted to scrap the design; he has enormous qualms about the
02000 design and coordinating all that effort
02100 Quam would raise holy hell, according to Ted
02200 but that would get it off his back and get it up.